#ifndef MONITOR_NEW_RESOURCE_MANAGER_RESOURCE_MANAGER_H_
#define MONITOR_NEW_RESOURCE_MANAGER_RESOURCE_MANAGER_H_

#include <string>
#include <unordered_map>

// 添加必要的包含
#include "build/proto_src/config.pb.h"

namespace sysinfo {
namespace monitor {

class ResourceManager {
 public:
  ResourceManager() = default;
  ~ResourceManager() = default;

  // 加载资源配置
  void LoadConfig(const ConfigProto& config);

  // 检查CPU是否过载
  bool IsCpuOverloaded(const std::string& module_name, double cpu_usage) const;

  // 检查内存是否过载
  bool IsMemoryOverloaded(const std::string& module_name, uint64_t memory_usage) const;

  // 获取CPU阈值
  std::pair<int64_t, int64_t> GetCpuThresholds(const std::string& module_name) const;

  // 获取内存阈值
  std::pair<int64_t, int64_t> GetMemoryThresholds(const std::string& module_name) const;

 private:
  // 资源配置映射
  std::unordered_map<std::string, ResourceManagerConfig> resource_configs_;
};

}  // namespace monitor
}  // namespace sysinfo

#endif  // MONITOR_NEW_RESOURCE_MANAGER_RESOURCE_MANAGER_H_